home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 September / CHIP_CD_2004-09.iso / test / bochs / files / Bochs-2.1.1.exe / / CHANGES.txt < prev    next >
Text File  |  2004-02-08  |  81KB  |  1,540 lines

  1. Changes in 2.1.1 (February 8, 2004):
  2.  
  3. - fix bug in int15h function 0xe820 (Christian Neubert)
  4. - fix vmware3 disk support on big-endian platforms (Christophe Bothamy)
  5. - fix conditions for NM exception on FWAIT instruction (Christophe)
  6. - fix symbol conflict in rfb and x display libraries (Volker Ruppert)
  7. - allow 16 bit writes to ne2k page 0 (Volker)
  8. - notify display libraries on change of bpp (Volker)
  9. - fix bug in int13h function 0x10 (Volker)
  10. - fix floppy dialog error on win2k (Volker)
  11. - fix adress check in TSS IO permission bitmap (Christophe)
  12. - fix buffer overflow vulnerability pointed out by SeSoX (Christophe)
  13.  
  14. -------------------------------------------------------------------------
  15. Changes in 2.1 (January 9, 2004):
  16.  
  17. Brief summary :
  18. - New disassembler
  19. - 3DNow!/SSE/SSE2/PNI instruction support
  20. - Vmware3/Sparse/Undoable/Growing harddisk images support
  21. - many VGA emulation improvements (e.g. high/true color VBE modes added)
  22. - No more X11 vga font required
  23.  
  24. Detailed change log :
  25.  
  26. - CPU
  27.   - added emulation of AMD 3DNow! instructions set. (Stanislav Shwartsman)
  28.     Bochs now could decode all AMD 3DNow! instructions. 
  29.     Most of instructions still not implemented, but the basis already presents.
  30.     Configure --enable-3dnow to enable 3DNow! support.
  31.     Notes : 
  32.       - These instructions are not implemented yet:
  33.     PFPNACC_PqQq, PF2IW_PqQq, PFNACC_PqQq, PFCMPGE_PqQq, PFMIN_PqQq,
  34.     PFRCP_PqQq, PFRSQRT_PqQq, PFSUB_PqQq, PFADD_PqQq, PFCMPGT_PqQq,
  35.     PFMAX_PqQq, PFRCPIT1_PqQq, PFRSQIT1_PqQq, PFSUBR_PqQq, PFACC_PqQq,
  36.     PFCMPEQ_PqQq, PFMUL_PqQq, PFRCPIT2_PqQq
  37.      - CPUID does not report 3DNow! instruction set.
  38.   - added emulation of SSE/SSE2 floating point instructions. (Stanislav)
  39.     All SSE/SSE2 floating point instructions are fully implemented using 
  40.     free softfloat library (including DAZ support and floating point
  41.     exceptions). Correctness of the emulation checked with heavily random 
  42.     testing. 
  43.   - added emulation of SSE3 (PNI) instructions (Stanislav)
  44.     Currently only 3 PNI opcodes still not implemented:
  45.     FISTTP m16int, FISTTP m32int, FISTTP m64int
  46.   - added P4 CPU support to CPUID instruction. (Stanislav)
  47.   - fixed implementation of FXSAVE/FXRSTOR instructions. (Stanislav)
  48.   - bugfix: unallowed lock prefix cases must cause #UD exception. (Stanislav)
  49.   - fixed fetchdecode bug caused #UD in SYSENTER/SYSEXIT instructions
  50.     in 32bit mode. (Stanislav)
  51.   - fixed fetchdecode64 bug caused wrong decoding of opcodes containing
  52.     BxImmediate_IvIw or BxImmediate_IwIb in x86-64. (Stanislav)
  53.   - fixed bug in int01 (opcode 0xF1) emulation. (Vitaly Vorobyov)
  54.   - fixed bug in x86 debugger with dr0-dr3 registers (Vitaly)
  55.   - fixed bug with mov to/from dr register in v86mode.
  56.     (now exception is generated (according to Intel documentation)
  57.     instead of panic) (Vitaly)
  58.   - fixed stack limit checking, now message is generated as BX_DEBUG,
  59.     rather then BX_PANIC, and exception code is executed. (Vitaly)
  60.   - instrumentation code updated. (Stanislav)
  61.   - fix flaw in IO bitmap permission of TSS (Christophe Bothamy)
  62.   - cpu resets on triple fault (Christophe)
  63.   - remove calculation on cr3 in dtranslate_linear to increase
  64.     emulation speed (Conn Clark)
  65.   - numerous x86-64 fixes (Peter Tattam)
  66.  
  67. - FPU
  68.   - hundreds of bugfixes in FPU emulation after checking of the emulation
  69.     with testfloat (Scott Duplichan).
  70.     - Fixed cases:
  71.         - floatx80_to_int32,   floatx80_to_float32
  72.         - floatx80_to_float64, floatx80_round_to_int
  73.         - floatx80_add,        floatx80_sub, 
  74.         - floatx80_mul,        floatx80_div
  75.   - implemented FCMOVcc instructions (Stanislav)
  76.   - 64-bit addressing support for x86-64 mode (Peter)
  77.  
  78. - Disassembler
  79.   - replaced Bochs disassember. New table-based disassembler fully supports
  80.     all IA-32 instruction sets including all FPU/MMX/SSE/SSE2/SSE3 opcodes.
  81.     (Stanislav)
  82.  
  83. - I/O devices
  84.   - general
  85.     - i/o access mask implemented, unallowed cases are now handled in the devices
  86.       code and cause a BX_ERROR (Volker Ruppert)
  87.     - include slowdown timer as a runtime option (Christophe)
  88.     - netBSD : fix serial, ethernet, cdrom (fredb, uebayasi and David Laight)
  89.   - VGA
  90.     - color depth 15, 16, 24 and 32 bpp supported by VBE (Volker and
  91.       Christopher Nelson for 32 bpp on win32). Supported by sdl, x, win32 and wx.
  92.     - SVGA mode 0x6A (800x600x4bpp) implemented (Volker)
  93.     - new CGA graphics modes 640x200x1bpp and 160x100x4bpp (text mode 80x100) (Volker)
  94.     - raster operations AND, OR and XOR in write mode 2 (based on SF patch #707931) (Volker)
  95.     - 'split screen' in standard VGA graphics mode implemented (Volker)
  96.     - 'double scan' and 'double width' now handled in the VGA code (Volker)
  97.     - more accurate emulation of the horizontal and vertical retrace (Volker)
  98.     - changeable start address and variable line length supported by all
  99.       graphics modes (Volker)
  100.     - VBE: preserve video memory feature implemented (Volker)
  101.     - additional text mode features prepared (handled in the display library
  102.       code) (Volker)
  103.   - PCI
  104.     - add experimental PCI VGA card (Mike Nordell)
  105.     - add experimental PCI USB card (Ben Lunt)
  106.   - Harddisks 
  107.     - per device selectable harddisk modes :
  108.       - undoable, volatile, growing disks support (Christophe)
  109.       - sparse disks support (justinSB)
  110.       - vmware3 disks support (Sharvil Nanavati)
  111.     - fix non detection of hard drives by minix2 (Christophe)
  112.     - implement atapi command 0xA8 read (12)  (Christophe)
  113.     - mode sense command updated (Hartmut Birr)
  114.   - sb16 
  115.     - opl2 support enhanced (James E. Flemer)
  116.   - ne2k
  117.     - tap support for FreeBSD (Ronald Klop and Gen Otsuji)
  118.     - fix when booting with grub (Keir Fraser)
  119.   - cmos
  120.     - date/time change support added (Volker)
  121.     - UIP bit and divider chain reset implemented (Volker)
  122.     - initial time can now be set to local time or utc (Christophe, Daniel Gimpelevich)
  123.   - keyboard
  124.     - keyboard reset function (0xff) now resets the keyboard (Volker)
  125.   - gameport
  126.     - new standard PC gameport device (real joystick connected on Linux and
  127.       win32 only). Enable it with --enable-gameport or the SB16 emulation (Volker)
  128.   - serial
  129.     - FIFO emulation (UART type 16550A) implemented (Volker)
  130.   - floppies 
  131.     - 160k,180k,320k floppies support (Ben Lunt)
  132.  
  133. - display libraries
  134.   - X11
  135.     - onboard vgacard charmap usage (no need for external X11 vga font any more) (Christophe)
  136.     - vgacard charmap change support (Christophe)
  137.     - fix black stripes on partial exposes (Dirk Thierbach)
  138.     - headerbar redraw optimizations (Dirk Thierbach)
  139.     - external font files and their installation mechanism removed (Volker)
  140.     - belgian keymap support (Wouter Verhelst, Eric Brasseur)
  141.   - win32 + wx + x: new application/window icon (bochs.ico / icon_bochs.xpm) (Volker)
  142.   - sdl + win32 + wx + x: new textmode features: variable line length,
  143.     char width switch, horizontal and vertical pel panning (Volker)
  144.   - win32 + wxMSW: key event handling rewritten (Volker)
  145.   - win32: status bar at the bottom of the simulation window added (Volker)
  146.   - wxMSW: resource problems fixed - wx dll plugin works now without errors (Volker)
  147.   - term: variable line length and cursor enable/disable feature implemented (Volker)
  148.   - rfb
  149.     - textmode: charmap change, better cursor emulation, variable line length (Volker)
  150.     - headerbar works now (power, reset and user button are okay) (Volker)
  151.     - key event handling rewritten (Volker)
  152.     - Bochs-RFB waits up to 30 seconds for a client connection. The emulation
  153.       starts after connecting the client. (Volker)
  154.   - carbon: Alt/Ctrl/Shift key handling rewritten & SysRq/Ctrl-Break key support added
  155.     (Daniel)
  156.  
  157. - configuration interface
  158.   - gui dialogs as an extension of the textconfig interface on win32 added (Volker)
  159.     * ask dialog
  160.     * save text snapshot
  161.     * user button shortcut
  162.     * floppy image change
  163.   - wxwindows configuration dialogs improved (Volker, Christophe)
  164.  
  165. - support tools
  166.   - bximage : added support for 
  167.     - growing disks (Christophe)
  168.     - sparse disks (justinSB)
  169.   - created bxcommit tool for undoable disk images (Christophe)
  170.  
  171. - System BIOS :
  172.   - fixed int15 function e801 (get memory size) (Christophe)
  173.   - added int75_handler for FPU Dos Exceptions (Christophe)
  174.   - added int16 function 0a (Get Keyboard ID) (Volker)
  175.   - added support for ElTorito Harddisk-on-CD emulation (Christophe)
  176.   - fixed ATA/Serial ioport conflict (Daniel)
  177.  
  178. - VGA BIOS : updated to version 0.4c (Christophe)
  179.  
  180. - configure script/compile/porting to other OSes/installation
  181.   - fixes for compilation with MSVC (Andrew Zabolotny)
  182.   - fixes for cross-compilation (Jeroen Janssen)
  183.   - win32 nsis installer script updates (Volker)
  184.   - small configure fixes for MacOS (Christophe)
  185.   - optimizations & compile fixes for MacOS/X (Daniel)
  186.  
  187. - configuration files. The following options have been deprecated :
  188.   diskc, diskd, cdromd, time0, pit, newharddrivesupport.
  189.  
  190. - documentation
  191.   - already ported and obsolete parts of the old documentation removed (Volker)
  192.   - user documentation updated and extended :
  193.     - improved section "What does Bochs need" (Volker)
  194.     - command line arguments (Volker)
  195.     - search order for the configuration file (Volker)
  196.     - the configuration interface 'textconfig' (Volker)
  197.     - FreeDOS Beta 8 installation instructions (Volker)
  198.     - disk modes (Christophe)
  199.     - LBA translation  (Christophe)
  200.     - cdboot error codes (Christophe)
  201.     - SCO OpenServer install section (Carl Sopchak)
  202.     - MacOS-X DMG install guide (Aard Vark)
  203.     - update Win98 install guide (Dirk Thierbach)
  204.  
  205. - SF patches applied
  206.   #658950  Bug in FPU                                                  (Anonymous)
  207.   #678117  build fail due to bad SGML punctuation                      (Anonymous)
  208.   #671873  minimal USB support (UHCI)                                  (Ben Lunt)
  209.   #682539  Fix CapsLock and NumLock behavior                           (rock at gimp.org)
  210.   #720776  REX MOVB immediate broken for x86_64                        (Arnd Bergmann)
  211.   #729450  new keymap x11-pc-be.map                                    (Wouter Verhelst)
  212.   #735990  Limited patches for VC++                                    (Anonymous)
  213.   #742670  fix library dependencies in GUI plugins                     (Robert Millan)
  214.   #742782  LFB bugfix                                                  (Jan L. Hauffa)
  215.   #748414  load32bitOShack bug                                         (kyriazis at nvidia.com)
  216.   #830079  Fix bochs's application error if unsupported key pressed    (Anonymous)
  217.   #724466  enable building with CC=gcc-3.2 CXX=g++-3.2; dist-clean adds(Leonard Norrgard)
  218.   #834962  Fixed drawing graphics is broken                            (Anonymous)
  219.   #838401  Fixed redrawing of ToolBar on Win32GUI                      (Anonymous)
  220.   #850236  Fixed accessing DVD-ROM with direct device access on Win32  (Anonymous)
  221.   #847822  Bochs crash when exmining memory that crosses page boundary (ortal at jungo.com)
  222.  
  223. - SF patches partially applied
  224.   #707931  Support EGA/VGA write mode 2 and others                     (Anonymous)
  225.            already applied: disable IME, split screen, write mode 2,
  226.            BIOS INT16h/AH=05h
  227.   #856506/#856510  Patch to fix compile-time iodev/cd-rom.cc error     (alden.dima at nist.gov)
  228.            Correct patch provided in SF bug report #843433             (birkhofer at users.sourceforge.net)
  229.  
  230. - patches applied
  231.   - patch.highmem  (memory allocation) (Zwane Mwaikambo)
  232.   - patch.floppy-160k-180k-320k-benlunt (exotic floppies) (Ben Lunt)
  233.   - patch.perf-regparm-cclark (performance) (Conn Clark)
  234.  
  235. - new patches present in the patches directory :
  236.         patch.pipelined-asm-cclark
  237.         patch.mingw-resources
  238.         patch.v8086-exception.lightcone
  239.         patch.pit-vitaly-vorobyov
  240.         patch.rombios-vitaly-vorobyov
  241.         patch.win32-vitaly-vorobyov
  242.         patch.win32-new-files-vitaly-vorobyov.tgz
  243.         patch.rombios.markevich
  244.         patch.rombios.dirk.thierbach
  245.  
  246. - these S.F. bugs were closed 
  247.    #865354 ">>PANIC<< CRA: divider chain control 0x07" in Linux 1.1
  248.    #725796 configure script bug 
  249.    #859768 cpuid
  250.    #843433 cdrom.cc on MacOSX: wrong const names
  251.    #851331 .cvsignore files in tarball
  252.    #787005 Some MOV instructions are not implemented!!!
  253.    #837416 V2 OS not compatible !?
  254.    #816971 main.cc: getcwd() missing argument▓
  255.    #813556 Compile error under gcc 3.3.1
  256.    #809758 RIGHT ALT does not function properly
  257.    #809695 CVS complains about unknown files after compilation
  258.    #628762 Error in Floppy Booting
  259.    #474526 Crash under win32 (access violation)
  260.    #687619 test case for BX_CPU_C::IRET32
  261.    #664544 Panic in IRET32 - Reporting test case
  262.    #637822 test case for BX_CPU_C::IRET32
  263.    #603410 BX_CP U_C::IRET32
  264.    #537047 IRET32 incomplete emulation, panic
  265.    #805541 Compile fails on i686, gcc 3.3
  266.    #798829 Problem booting from ISO image
  267.    #688163 Panic at rombios.c
  268.    #688161 rombios.c crashes when boot from a CD.
  269.    #796339 int 15h, e801h broken?
  270.    #666946 Slowdown Timer should be a module
  271.    #783826 the clock is extremely fast
  272.    #645609 Real Time Clock is too *FAST*
  273.    #663320 flaw in IO bitmap permission handling
  274.    #764929 Timing is off.
  275.    #659510 Bochs timing off by x10
  276.    #787138 No ROM BIOS character map
  277.    #787134 Config options not saved
  278.    #689201 Disassembler bug
  279.    #666202 Windows 2000 - random screen blanking with linux DLX demo
  280.    #629242 reset during Doom -> BIOS panic
  281.    #685508 PANIC: prefetch: RIP > CS.limit
  282.    #695434 minix floppies won't boot.
  283.    #764473 Freesco Linux crashes on boot
  284.    #656026 error when trying to run some stuff
  285.    #614202 HD: non-byte IO read to 01f4
  286.    #777357 Strange FPU compiler error
  287.    #583758 gag bootloader doesn't run
  288.    #658639 ne2k panics with MS lanman Client/DOS62
  289.    #536711 problem running smart bootmanager
  290.    #741433 Disabling all ata# results in HD error.
  291.    #753200 lock instruction doesn't do an illegal instruction trap
  292.    #679389 libbx_wx.so.0: undefined symbol
  293.    #758936 Problem Installing Bochs
  294.    #742580 I configured fants but bochs still give me the same error
  295.    #772242 iodev/vga.cc wrong memory access.
  296.    #739222 Cannot change resultion
  297.    #693344 libwx_gtk2.3.so.2 RedHat linux 8.0
  298.    #639320 sparc: needs -lm to compile
  299.    #587422 Windows 95j doesn't boot
  300.    #547817 sparc: rfb needs -lsocket
  301.    #480963 RFB: option to wait for client
  302.    #763893 i've got problems with a "libvga.so.1" and another file
  303.    #766490 Documentation mistake
  304.    #766481 Bochs 2.0.2 Fails to compile on YDL3.0
  305.    #626144 %lld is not portable
  306.    #752241 lock prefix erronously allowed for some instructions
  307.    #743305 fetchdecode.c probs
  308.    #658707 Automatic exit?
  309.    #696758 BeOS can't mount image disk, won't complete boot.
  310.    #737048 Enabling keyboard resets controllers translation mode
  311.    #717713 Bochs panics on startup on RH 9
  312.    #738808 VGA PANIC
  313.    #730922 seg fault on "bochs boot: cdrom"
  314.    #658905 VGA read write error
  315.    #564218 Panic on vga_mem_write
  316.    #614231 X11 doesn't support charmap change
  317.    #708311 Missing CGA low-res emulation
  318.    #720776 REX MOVB immediate broken for x86_64
  319.    #643296 lock prefix, unallowed cases
  320.    #716964 [sb16] OPL.timer_running not initialized
  321.    #662074 little mistake in the default config example
  322.    #470701 CD-ROM on Win2K needs FILE_SHARE_READ
  323.    #706454 bug??
  324.    #653861 Win32 build bug
  325.    #421155 panic on vga read 0x3c7,0x3cb
  326.    #666434 VGA BIOS: Incompatible mode reporting
  327.    #681819 Incorrent return value from cdrom reads
  328.    #648222 Lotus Agenda futuristic dates off
  329.    #657455 doesn't boot plan9
  330.    #658938 SGDT in VM8086 
  331.  
  332. -------------------------------------------------------------------------
  333. Changes in 2.0.2 (January 21, 2003):
  334.  
  335. - fix possible segfault in wxWindows (Volker Ruppert)
  336. - fix instrumentation (Stanislav Shwartsman)
  337. - fix cdrom read_toc() function for *BSD (Keith Matthew Jones)
  338. - fix NetBSD boot from cdrom (Christophe Bothamy)
  339. - fix cmos checksum (Volker)
  340. - fix "refresh bit" behaviour in pit (Volker)
  341. - fix .bochsrc parsing (Volker)
  342. - fix vga resize/redraw problems (Volker)
  343. - fix compilation issues on Irix and Tru64 (Christophe)
  344. - fix MMX/SSE bugs (Stanislav, Peter Tattam)
  345.  
  346. -------------------------------------------------------------------------
  347. Changes in 2.0.1 (January 4, 2003):
  348.  
  349. - fix corrupt saved configuration files (Christophe Bothamy)
  350. - fix missing break statements in apic (Shai Fultheim)
  351. - fix compiling sb16 under FreeBSD (Volker Ruppert)
  352. - updates to the documentation (Volker)
  353. - fix text mode colors 8 to 15 (Volker)
  354. - fix FPU integer load bug (Volker)
  355. - stop pasting on hardware reset (Volker)
  356.  
  357. -------------------------------------------------------------------------
  358. Changes in 2.0 (December 21, 2002):
  359.  
  360. Since the change log is hundreds of lines long, here is a very brief summary.
  361. - 2x emulation speedup!!!
  362. - added plugin devices and guis. Now you can compile with many more
  363.   options, and choose between them at runtime.
  364. - added emulation of AMD x86-64, MMX, SSE, SSE2 instructions
  365. - add wxWindows port (a graphical configuration interface and display lib)
  366.   and SVGAlib port (full screen display for Linux without X11)
  367. - improvements in many I/O devices: for example up to 8 hard disks/cdroms,
  368.   TUN/TAP network interface, 360k floppies,
  369. - improved MacOSX/Carbon interface and updated MacOS9 port
  370. - GDB remote stub, allows symbolic debugging with Bochs simulation.
  371. - support for up to 32gig hard disk images
  372.  
  373. Detailed change log follows.
  374.  
  375. - documentation
  376.   - manpages updated (Volker, Christophe)
  377.   - install HTML rendering of docbook documentation instead of 
  378.     docs-html (Bryce)
  379.   - doc/docbook/Makefile is now generated by configure script.
  380.     if configure detects docbook2html on your system, it will turn on
  381.     --enable-docbook and run make in the doc/docbook directory.  Also
  382.     make install will install documentation into $(docdir).  You can use
  383.     --disable-docbook to turn this off, if necessary. (Bryce)
  384.   - add "make bochsdoc.tar.gz" target to create a documentation tarball.
  385.     If you do "make webinst" and you have write access on SF shell server,
  386.     it updates doc/docbook/* on the website (Bryce)
  387.   - user documentation additions:
  388.     - new options (Bryce, Volker, Christophe)
  389.     - Bios tips section (Christophe)
  390.     - Tuntap section (Christophe)
  391.     - Serial Port section (Christophe)
  392.     - "Will it Work for Me" / "Is Bochs Right for Me" sections 
  393.       (N. David Guarneri)
  394.     - VESA section (Jeroen Janssen)
  395.     - several documents, previously existing as separate html files, have
  396.       been included :
  397.       - internal debugger section (Christophe)
  398.       - gdb stub debugger section (Christophe)
  399.       - WinME, WinNT, WinXP, The Hurd, Japanese Win95 install tips (Christophe)
  400.       - Win95, Win98 install tips (N. David)
  401.       - SB16 section (N. David)
  402.  
  403. - configure script/compile/porting to other OSes/installation
  404.   - added plugin architecture
  405.     - plugin code written by Bryce, Christophe, Volker based on
  406.       plex86's plugin code by Kevin.  Testing help from Psyon and Br'fin.
  407.     - Plugins are shared libraries that can be loaded on demand.  Example:
  408.       the serial device is implemented as a plugin.  In UNIX, the
  409.       serial plugin is called libbx_serial.so.  When Bochs reads its
  410.       configuration file, if the serial device is enabled it loads
  411.       libbx_serial.so.
  412.     - all display libraries, most I/O devices are converted to plugins now
  413.     - plugins supported on Linux, Solaris, and MacOS X using libtool,
  414.       Cygwin using dlltool.  On MacOSX, you must have dlcompat installed
  415.       and in your include/library paths at configure time.  (See .conf.macosx
  416.       for an example.)
  417.     - we use libtool's LTDL library from libtool 1.4.2, with a number of
  418.       critical bug fixes (Bryce Denney)
  419.     - the Linux binary RPMs are built with plugin support
  420.     - to compile with plugins, configure with --enable-plugins
  421.     - the LTDL_LIBRARY_PATH variable tells Bochs where its plugins can be
  422.       found.  Bochs has a compile-time default for this variable which is
  423.       correct if you do a make install.  You would only need to set the
  424.       variable if the default is wrong.
  425.     - for win32 plugins we added "BOCHSAPI" in front of many classes
  426.       and methods, to aid in building DLLs.  This turns into __declspecs
  427.       which are used when making an export library for Bochs.
  428.   - allow many display libraries to be configured and compiled at
  429.     a time.  For example --with-win32 --with-sdl --with-rfb.
  430.     Also, we added an experimental option --with-all-libs which
  431.     tries to detect which --with-* options will work.  If the
  432.     autodetection fails, just type the --with-* options explicitly. (Bryce)
  433.   - add #if's around all files which are conditionally compiled such
  434.     as cdrom.cc and sb16.cc.  This makes it possible to compile every
  435.     source file all the time, which has the potential to simplify the
  436.     configure script and makefiles.  At present we only take advantage
  437.     of this capability in the win32 VC++ workspace. (Bryce)
  438.   - the MacOS9 port has been updated so that it works again.  It had
  439.     not been updated in at least 2 years, maybe more.  (Christophe Bothamy)
  440.   - improve support for FHS standard (Robert Millan, Volker Ruppert)
  441.     See patches 551811 and 650066.
  442.   - keep separate CFLAGS and CXXFLAGS for Bochs (usually a graphical
  443.     program) and console programs such as bximage and niclist.  Some
  444.     sdl and wx compile flags were making bximage and niclist unusable.(Bryce)
  445.   - add concept of cross-configuring in the configure script.  If you
  446.     use the --target option to generate makefiles to be used on another
  447.     machine, some detection of compilers and libraries is disabled. (Bryce)
  448.   - fix term compile on Cygwin, but it has to be done without -mno-cygwin,
  449.     which means that several win32 features such as networking do not work.
  450.   - add "-Wno-multichar" on beos
  451.   - test for largefile support, and add required CFLAGS (Bryce)
  452.   - add -lm when it's needed, and not when it's not (Bryce)
  453.   - add configure support for 8 processors. Bochs can support up to 15
  454.     with some work on the BIOS.
  455.   - fix nmake makefile generation (Psyon)
  456.   - improved pthread detection function from ac-archive project on SF
  457.   - add installer package for Windows, using Nullsoft (Michael Rich, Bryce)
  458.   - on MacOSX, add startup script that creates a text console and then
  459.     runs Bochs.  Also add make target to create a DMG disk image (Br'fin)
  460.   - do not restart the font server on Unix/X11, if vga.pcf was already
  461.     installed.  On several modern machines, if you restart the font 
  462.     server the user has to restart X windows. (Bryce)
  463.   - update most .conf.* files with modern options such as 
  464.     --enable-all-optimizations. (Bryce)
  465.   - The MacosX .conf script adds /sw/include and /sw/lib to the compile/link
  466.     path list because it is a common place to put dlcompat.  Dlcompat is
  467.     required when building with plugins. (Bryce)
  468.   - rpms can now be built without root privileges (Bryce)
  469.  
  470. - command line
  471.   - fixed up our command line options (Volker, Bryce, Christophe)
  472.       Usage: bochs [flags] [bochsrc options]
  473.       -n               no configuration file
  474.       -f configfile    specify configuration file
  475.       -q               quick start (skip configuration interface)
  476.       --help           display this help and exit
  477.  
  478. - configuration file (bochsrc)
  479.   - There are several new options. See the documentation for more details.
  480.     - config_interface: select text mode menus or wxWindows for configuration
  481.     - display_library: select which display lib to use
  482.     - optromimage: load optional rom images
  483.     - ataN (N=0,1,2,3): up to 4 ATA controllers for hard disks, cdroms
  484.     - ataN-master, ataN-slave, N=0,1,2,3: defines a hard disk or cdrom.
  485.       The "ata*" options replace diskc, diskd, and cdromd, which are
  486.       now deprecated.
  487.     - floppy_bootsig_check: control the 0xaa55 signature check on boot floppies
  488.     - logprefix: lets you change the format of log messages
  489.       (patch by Carl Sopchak, help from Christophe)
  490.     - debugger_log: log all output from bochs debugger
  491.     - user_shortcut: allow you to type key combinations like Ctrl-Alt-Del
  492.     - pit: control the PIT model, including realtime option to try to
  493.       keep in sync with real time.
  494.     - Credits: Christophe added optromimage, everything about ATA, 
  495.       floppy_bootsig_check, debugger_log.  Bryce added config_interface
  496.       and display_library.  Volker did the user_shortcut button.
  497.       Greg Alexander wrote the PIT model and added the realtime option.
  498.   - since v1.3 we've been able to use environment variables in pathnames
  499.     in the bochsrc file.  Now, a few variables have default values, set at
  500.     compile time, that are used if the user does not set a value.  If Bochs 
  501.     is installed correctly, the defaults will be correct and the user will 
  502.     not need to override them.
  503.     - $LTDL_LIBRARY_PATH is the path name where the plugins can be found.
  504.       The default value comes from $(plugdir) in the makefile.  This is only
  505.       important if plugins are enabled. (Bryce)
  506.     - $BXSHARE is the path where the BIOSes and keymaps are installed.
  507.       The default value comes from $(sharedir) in the makefile.  Disk
  508.       images on the Bochs website will begin to use BIOS pathnames like
  509.       $BXSHARE/BIOS-bios-latest.  On win32, the $BXSHARE default is 
  510.       set by the NSIS installer and read from the registry.  On MacoSX,
  511.       the $BXSHARE default is set to the path containing bochs.app.
  512.       (Bryce, Volker, Br'fin)
  513.   - new option in the configuration interface to reset all bochsrc 
  514.     settings to initial defaults.  A reset occurs just before reading
  515.     a new configuration file, so that leftover parameters from a
  516.     previous configuration do not affect the new configuration.  Also, 
  517.     you can request a reset using the configuration interface. (Volker, Bryce)
  518.   - ne2k line can now specify a script to set up the interface (Christophe)
  519.   - on Unix, also search /etc/bochsrc (Bernhard Bablok)
  520.   - you can use #include in the bochsrc to read configuration from other 
  521.     files (Volker)
  522.  
  523. - CPU
  524.   - speed optimizations from Kevin Lawton, yielding around 2x speedup
  525.     - guest2host_tlb : for entries in the paging TLB which point to normal
  526.       physical memory pages, a pointer to the host address of the emulated
  527.       physical memory (from malloc()) page is stored in the TLB entry.  In
  528.       many cases, this pointer can be used in memory accesses to directly
  529.       read/write the guest memory address.  In exceptional cases, the physical
  530.       memory access routines are used.  Turn on with --enable-guest2host-tlb.
  531.     - repeat IO/string : for some variants of repeatable IO and string
  532.       instructions, the segmentation and paging checks are done in batch along
  533.       with the data transfers, constrained within page boundaries and the
  534.       segment limits.  Turn on with --enable-repeat-speedups.
  535.     - icache : The structure holding instruction decode information was
  536.       reduced to 32 bytes.  24 bytes for the actual decode data, and 4 each
  537.       for pointers to the address resolution routine (not always needed) and
  538.       the instruction emulation routine.  With a reasonably small
  539.       per-instruction decode size, an instruction cache (iCache) was created,
  540.       which is simply a hash table.  The main cpu loop looks in the table
  541.       first; if the instruction has already been decoded, execution can begin
  542.       immediately without decoding.  Turn on with --enable-icache.
  543.     - host specific asm : when compiling on an x86 platform, use of
  544.       x86-specific asms can be enabled to accelerate several facets of
  545.       emulating instructions.  For example, the EFLAGS values are much more
  546.       efficient to calculate when the actual x86 instructions are used to
  547.       generate the EFLAGS values.  Turn on with --enable-host-specific-asms.
  548.       (Kevin, with help from Jas Sandys-Lumsdaine)
  549.     - if you want to enable all the speed optimizations that we believe
  550.       to be stable, use --enable-all-optimizations.  The release binaries
  551.       are built with this option.
  552.   - add support for AMD's x86-64 instruction set.  To enable, configure with
  553.     --enable-x86-64.  The AMD x86-64 support is about 90% complete and is
  554.     still experimental.  We've implemented the core x86-64 instruction set and
  555.     the changes to the rest of Bochs necessary to operate in long mode, but
  556.     we've still to implement checking for canonical 64 bit addresses. The code
  557.     has been tested on a limited number of test programs.  It has been able to
  558.     successfully boot a x86-64 Linux kernel and run a 64 bit userland
  559.     application.  It has also successfully run a DOS based 64 bit protected
  560.     mode test application. (Peter Tattam, with merge/bugfix help from Kevin
  561.     Lawton and Bryce Denney)
  562.   - add MMX support. To enable, configure with --enable-mmx. 
  563.     (Stanislav Shwartsman)
  564.   - add SSE and SSE2 support. To enable, configure with --enable-sse=1
  565.     or --enable-sse=2. (Stanislav)
  566.   - fixed the behaviour of the bcd instructions AAM, AAD and DAA based on
  567.     SF patch #537146 (Volker)
  568.   - stop printing an error for VERR/VERW. According to the i386 opcode
  569.     description there is no error present. (Volker)
  570.   - fix bug [ 625878 ] reset doesn't reset something(?). Fix cpu reset
  571.     when executing a rep instruction (Christophe)
  572.   - use accessors methods for CFLAGS and several other registers, so that
  573.     the implementation can be changed transparently later (Bryce, Stanislav)
  574.   - add support for page size extensions, also known as 4meg pages.
  575.     Turn on with --enable-4meg-pages. (Kevin Lawton)
  576.   - add support for page global extensions.  Turn on with
  577.     --enable-global-pages.   (Kevin)
  578.   - add support for physical address extensions.  Turn on with --enable-pae.
  579.     (Peter Tattam)
  580.   - implement RDMSR and WRMSR. not all MSRs are supported (Zwane Mwaikambo)
  581.   - new configure option --enable-ignore-bad-msr, which makes unrecognized
  582.     MSR reads and writes into just a warning
  583.   - fix PIC/APIC interrupt problem that caused Linux 2.4.19 to hang 
  584.     during boot (Peter)
  585.   - CMPXCHG8B patch (Michael Hohmuth)
  586.   - EFLAGS are now stored in the same form as the native EFLAGS on an x86,
  587.     so that we can use native machine instructions in some cases (Kevin)
  588.   - instrumentation code updated (Stanislav)
  589.  
  590. - FPU
  591.   - fixed bug [ 452275 ] fprem emulation bug (Volker)
  592.   - fixed bug [ 648579 ] Mac OSX >>PANIC<< FPU_printall. There was an 
  593.     endianness issue with the fpu (Christophe)
  594.  
  595. - I/O devices
  596.   - rewrote pc_system timers (Kevin)
  597.   - biosdev
  598.     - this new device handles the panic/error/info/debug messages sent 
  599.       by the Bios and VGABios.  It was previously done in the unmapped device. 
  600.   - cdrom
  601.     - implementation of the function READ TOC for cdrom image files. (Volker)
  602.     - function capacity() for win32 fixed. Now it returns the number of blocks
  603.       instead of bytes. (Volker)
  604.     - added multiple cdrom support for win32 (NT/2000 version untested). The
  605.       ASPI version uses the cdrom drives in the system's order. Drive letters
  606.       are not used by ASPI. (Volker)
  607.     - fix configure script's cdrom detection on BeOS (Bryce)
  608.     - fix physical CD change at runtime (Bryce)
  609.   - cmos
  610.     - fix panic when WinXP read port 70h (Christophe)
  611.     - add ps/2 style century at index 37 to allow WinXP to boot. (Bryce)
  612.   - dma
  613.     - DMA register and unregister functions for DMA channels added and macros
  614.       for DMA functions defined. The changes are based on the Plex86 functions.
  615.       (Volker)
  616.     - implementation of the DMA controller reset (Volker)
  617.     - the value of the command register must be always 0x00 (BX_ERROR fixed)
  618.   - floppy (Volker)
  619.     - implemented Tape Drive Register (Dave Poirier)
  620.     - added support for 360k floppy images
  621.     - the skip flag (SK) in command 'read sector' is ignored now
  622.     - floppy read and write function do not set the 'seek end' bit in status
  623.       register 0 (fixes SF bug #553377)
  624.     - the status of the 'disk changed' line depends on the selected drive.
  625.       The digital input register is now an array (DIR[4]).
  626.     - apply patch [ 635021 ] floppy cleanup by Alex Thiel 
  627.     - distinguish between floppy drive type and media type
  628.   - hard drive
  629.     - add largefiles support, to allow disk images larger than 2gig.
  630.       (Stu Grossman)
  631.     - missing conditions for lower_irq() added (Volker)
  632.     - several noncritical panics replaced with BX_ERRORS and the controller
  633.       returns an error code until we implement the features (Volker)
  634.     - applied patch from Carl Sopchak for booting  sco openserver
  635.     - allow disk block access only if concatenated images are not used
  636.       (Christophe)
  637.     - fix bug [ 419415 ] netbsd 1.5 rescue disk won't boot (Volker)
  638.     - multiple drq atapi data transfers corruption fixed (Christophe)
  639.     - added some commands to the unsupported "Set Feature" commands (Christophe)
  640.     - speedups in repeated IO transfers (Kevin)
  641.     - support for Peter Tattam's external disk simulator (Bryce)
  642.     - 4 channels / 8 devices support (Christophe)
  643.     - "inquiry" atapi command results corrected (Volker)
  644.     - check for incomplete devices configuration before starting the
  645.       simulation (Bryce)
  646.     - implemented the different bios disk translation schemes (Christophe)
  647.   - keyboard and mouse
  648.     - add commands 0xd2, 0xdd and 0xdf (Dave)
  649.     - fix bug [ 613975 ] wxWindows: params redefined on restart (Bryce)
  650.     - in function mouse_motion(): added parentheses to fix compilation problems
  651.       with MSVC. See SF bug #575301. (Volker)
  652.     - added missing register_irq() for the PS/2 mouse IRQ12 (Volker)
  653.     - fix "AltGr" key on European keyboards wxWindows/win32, SDL (Volker)
  654.   - NE2000
  655.     - function reset() clears the IRQ line (Volker)
  656.     - added TUN/TAP interface (Renzo Davoli, Christophe)
  657.     - fix DOS based packet drivers that use an odd count for the NE2000 DMA (Peter)
  658.     - changed "TCR write, reserved bits set" panic into an error, fixes
  659.       networking with debian image (Bryce)
  660.   - parallel
  661.     - parport1 enable/disable support added (Volker)
  662.   - PCI (Volker)
  663.     - implementation of the PCI device register mechanism
  664.     - PCI memory handling moved to the memory code
  665.     - replaced memcpy() in pci_read() by a more portable code. Problems with
  666.       PCI on big-endian machines are fixed now (SF bug #638481).
  667.     - implementation of the PCI-to-ISA bridge started (still incomplete)
  668.   - PIC
  669.     - fixed detection of single mode and level senistive mode in ICW1 (Volker)
  670.     - fixed handling of rotate_on_autoeoi for master PIC (Volker)
  671.     - irq mask is now cleared on initialization (Dave)
  672.     - fixed lockup during mouse movements during win98 install. (patch from 
  673.       Wilfried Weissmann)
  674.   - PIT
  675.     - Added realtime PIT support (Greg)
  676.   - Sound Blaster 16
  677.     - it used to enable itself all the time; now only when you ask
  678.     - fix memory leaks (Bryce)
  679.   - serial
  680.     - don't cause problems when serial device is disabled (Volker)
  681.   - unmapped
  682.     - add programmatic shutdown feature at port 0x8900 (Christophe)
  683.   - vga
  684.     - VBE fixes (Jeroen, Volker)
  685.     - CRTC fixes (Volker)
  686.     - sequencer reset with bits 'reset1' and 'reset2' implemented (Volker)
  687.     - add charmap change support (used by SDL, win32 and wxWindows gui) (Volker)
  688.     - screen dimensions / updates for some graphics and text modes fixed (Volker)
  689.     - use the start address when calculating the byte offset for standard
  690.       EGA/VGA modes (Volker)
  691.     - byte offset for modeX fixed (use value of CRT register 0x13) (Volker)
  692.     - text mode memory mappings 0 and 1 support (Christophe)
  693.     - fix bug [ 612741 ] VBE mem conflicts w/ local APIC address (Jeroen)
  694.     - fix bug #635223: VGA tiles array access out of bounds (Bryce)
  695.  
  696. - ROM BIOS
  697.   - improve compile process. Now bioses for 1, 2, 4 and 8 processors 
  698.     are built at the same time (Bryce)
  699.   - fixes to be able to compile the bios with gcc2 or gcc3 (Jeroen and
  700.     Christophe)
  701.   - changes on boot signature check (Christophe):
  702.     - never done for cdroms
  703.     - always done for hard-disks
  704.     - conditional for floppies
  705.   - add keyboard int16 functions 0x09 (get keyboard functionality) and 
  706.     0x0a (get keyboard id) (Christophe)
  707.   - fix bug [ 629810 ] int 16/ah=01 broken? Enable interrupt on entering
  708.     int16 handler (Christophe)
  709.   - new keyboard init in POST (patch from Adam Sulmicki)
  710.   - flush input and output keyboard buffer before keyboard self test
  711.     (Volker and Christophe)
  712.   - fix bug [ 547603 ] kbd up/down arrows in dos install (Christophe)
  713.   - fix bug [ 549815 ] bios wrongly loads CS,ES.  CS and ES are set to 0
  714.     before the bootloader code is called. (Christophe)
  715.   - PCI functions support (Volker) :
  716.     - BIOS32 service directory
  717.     - real mode PCI int1a functions 
  718.     - protected mode PCI int1a functions 
  719.   - fix reset for MS-DOS and Win95 (Volker)
  720.   - 360K floppy support (Volker)
  721.   - enhanced ata/atapi support (Christophe) :
  722.     - 4 channels / 8 devices
  723.     - device auto detection (with help from Adam Sulmicki)
  724.     - EDD3.0 
  725.     - 32bits device access
  726.     - optional disk translation "large", "r-echs" or "lba" (up to 8.4GiB)
  727.   - re-enable harddisk controller interrupt after reads/writes. 
  728.     Win95 can now use native access to harddisks and cdroms. (Volker)
  729.   - shutdown status handling (cmos index 0x0f) (Christophe) :
  730.     - fix bug [ 601166 ] CMOS Problem @ "0x0F Index 0x05 data". After reset
  731.       execution will resume by a jump to [0x40:0x67] if the shutdown status 
  732.       is 5 
  733.     - the bios don't panic any more if the shutdown status is 9
  734.   - two parallel ports detection in POST (Volker)
  735.   - two serial ports detection in POST (Volker)
  736.   - add int15 extended memory function 0xe820 (patch from osmaker) and
  737.     0xe801 (patch from Hartmut Birr)
  738.   - fix return values on some int15 functions (Bryce)
  739.   - fix int70 handler overlapping int08 handler (Christophe)
  740.   - simplify 8 processors BIOS for operating systems which don't do 
  741.     paranoia/sanity checks (Zwane)
  742.  
  743. - configuration interface
  744.   - wxWindows config interface now allows you to change every bochsrc
  745.     option using menus and dialog boxes.  There is also the beginning of
  746.     a wxWindows graphical debugger, but it needs a lot of work before it
  747.     will be useful.
  748.   - renamed control.cc to textconfig.cc.  Now we're calling it a 
  749.     text configuration interface, instead of a control panel.
  750.  
  751. - display libraries
  752.   - Even though we've had them for years, the term "display library" is new in
  753.     release 2.0.  In the gui directory, Bochs has a number of different C++
  754.     files which you can select to display the text and graphics on the
  755.     simulated monitor.  Each of these is a display library.  The display
  756.     libraries are:
  757.       x          use X windows interface, cross platform
  758.       win32      use native win32 libraries
  759.       carbon     use Carbon library (for MacOS X)
  760.       beos       use native BeOS libraries
  761.       macintosh  use MacOS pre-10
  762.       amigaos    use native AmigaOS libraries
  763.       sdl        use SDL library, cross platform
  764.       svga       use SVGALIB library for Linux, allows graphics without X
  765.       term       text only, uses curses/ncurses library, cross platform
  766.       rfb        provides an interface to AT&T's VNC viewer, cross platform
  767.       wx         use wxWindows library, cross platform
  768.       nogui      no display at all
  769.   - it is now possible to compile Bochs with support for many different
  770.     display libraries and select the one to use at runtime (even without
  771.     plugins).  See the display_library directive in .bochsrc.
  772.   - add new svgalib display library by Igor Popik
  773.   - fix bug [ 614724 ] SDL can get stuck in full screen mode
  774.     display libraries such as SDL which have a full screen mode can be
  775.     dangerous, if Bochs does not switch back to normal display mode at
  776.     the right time.  This is fixed for SDL and the new svga.
  777.   - keymap support added in SDL interface (Bryce, Volker)
  778.   - new keymap files: SDL keymaps for US and DE keyboards,  X11 keymap
  779.     for Danish keyboard.
  780.   - use keyboard mapping for keyup messages too
  781.   - renamed almost all references to data type "Boolean" to "bx_bool".
  782.     The Boolean data type was defined in Carbon.h headers, and conflicted
  783.     with Bochs's definition.  See bug [ 618388 ] Unable to boot under MacOS X
  784.     Exceptions: When talking to the Carbon library, you must use Boolean.
  785.     Also, siminterface.h uses standard "bool" instead of bx_bool.
  786.   - "User" button added in toolbar. It can send keyboard shortcuts to
  787.     the guest OS. (Volker)
  788.   - snapshot improvement and memory leak fixed (Volker)
  789.   - testing framework, based on comparing screen content, added (Greg)
  790.   - term display library:
  791.     - support for color terminal, function keys, clear screen (Volker)
  792.     - solaris compilation problem (bug #613393) fixed (Bryce)
  793.   - win32 display library:
  794.     - use native win32 toolbar for headerbar, use system palette (Volker)
  795.   - many Carbon interface improvements:
  796.     - patch [ 549248 ] Fix Carbon key & menu handling (Chris Thomas)
  797.     - partial keymap support, copy&paste, menu items fixed, new toolbar
  798.       behavior, dialog box display for panics (Br'fin)
  799.   - sdl display library:
  800.     - keyboard fixes and key mapping added (Bryce)
  801.     - when captured, the mouse is forced to stay in the window. fix bug
  802.       [ 619283 ] SDL: os mouse pointer leaves the window (Bryce)
  803.   - x display library:
  804.     - bug [ #537593 ] vga font not being found fixed. If vga font not 
  805.       found, search for a font called "-*-vga-*" (Bryce)
  806.     - keyboard problems fixed (Bryce, Christophe)
  807.   - beos platform, any display library: add a nice icon to the executable
  808.     (Bernd Korz)
  809.  
  810. - wxWindows
  811.   - wxWindows is a cross-platform C++ user interface library which you can
  812.     download for free at http://wxwindows.org.  wxWindows provides C++
  813.     classes for all sorts of GUI controls (buttons, menubars, etc.) and
  814.     implements all of them using the native controls on the platform.
  815.   - The new wxWindows port of Bochs provides both a graphical configuration
  816.     interface (for editing bochsrc options) and a display.  It was
  817.     written by Bryce Denney, Don Becker, Dave Poirier, and Volker Ruppert.
  818.   - In release 2.0, we concentrated on making the wxWindows port as stable
  819.     and functional as the other interfaces.  wxWindows provides a great
  820.     toolbox that we can use to make Bochs easier to learn and use.
  821.   - wxWindows supports charmap changes, keyboard mapping, cut and paste,
  822.     text and graphics modes, text mode cursor size, and mouse (Volker, Bryce)
  823.   - To compile Bochs with wxWindows, you should install wxWindows 2.3.3
  824.     or later.  Then configure Bochs with --with-wx.
  825.   - if you have multiple versions of wxWindows installed (e.g. a debug
  826.     and a release version), you can set $WX_CONFIG before configuring 
  827.     to select between them. (Bryce)
  828.  
  829. - Bochs debugger
  830.   - [ 609616 ] remote GDB stub
  831.     add GDB Stub support from Johan Rydberg, with bug fixes by Stu Grossman
  832.   - add hooks for external debugger for win32.  The external debugger 
  833.     that connects to Bochs is distributed in 
  834.     build/win32/tattam-external-debugger.zip in binary form. Turn on
  835.     with --enable-external-debugger.  (Peter)
  836.   - add "debugger_log" option to bochsrc, which logs all debug output
  837.     into a file. feature [ 629068 ] (Christophe)
  838.   - debugger is now usable in fullscreen SDL and SVGA guis.  It will
  839.     switch back to text mode for each debug prompt (Bryce)
  840.   - disassembly output cleaned up and improved 
  841.     (Kernel Panic, Peter Tattam, Jonathan Shapiro, Luiz Henrique Shigunov)
  842.   - fix [ 628806 ] debug: x/c prints unprintable chars (Bryce)
  843.   - add the beginnings of a wxWindows debugger. Not ready for mainstream use
  844.     yet. CPU register display is implemented, and you can type any debugger
  845.     command you want into the Debug Console window. (Bryce)
  846.   - add help command (Alexander Krisak)
  847.   - symbol table lookups cleaned up a bit (Bryce)
  848.   - displays the address of the caught watchpoint, feature #435271 (Dave)
  849.   - remove obsolete "loader"
  850.  
  851. - utilities
  852.   - fixed bug [ 487758 ] bximage fails on file creation >2048meg 
  853.     Bximage should now work up to 32gig. (Bryce)
  854.   - on win32, both bximage and niclist now ask the user to press
  855.     return before exiting, so that you have time to read the results
  856.     before the window disappears. (Bryce)
  857.  
  858. -------------------------------------------------------------------------
  859. Changes in 1.4.1 (June 22, 2002):
  860.  
  861. - now cdrom is enabled in configure, unless you specifically disable
  862.   it with --disable-cdrom. (Christophe)
  863. - fix compile error in main.cc when SMP or APIC is enabled (Dave)
  864. - the runtime menu now displays 11 (continue) by default (Bryce)
  865. - initialize DMA controller before floppy and SB16
  866. - fix DMA panic when installing win95 (Volker)
  867. - first character of the vga bitmap is blank on win32 (Volker)
  868.   Before, it was incorrectly coded as a '@'.
  869. - AltGr key on European keyboards works now on win32 (Volker)
  870. - fix problem with console/serial port on Bochs exit (Volker)
  871. - enable serial port for GNU and GNU/Linux (Volker)
  872. - small documentation fixes (Volker)
  873. - remove unnecessary include statements for X11 (Volker)
  874. - italian keymap added (Emanuele Goldoni)
  875. - fix win32 ethernet frames error. It will no longer reject packets
  876.   that are less than 60 bytes long. (Peter Tattam)
  877. - BIOS fixes :
  878.   - win2k cd-boot (Christophe)
  879.   - emm386 crash (Dave)
  880.   - cs=0 at boot time (Christophe)
  881.   - keyboard failure in scandisk (Dave)
  882. - fix bug in forming the 64-bit APIC base address from two 32-bit registers.
  883.   A compiler warning in cpu/proc_ctrl.cc pointed this out.
  884. - fix default choice in the runtime options menu
  885.  
  886. -------------------------------------------------------------------------
  887. Changes in 1.4 (March 27, 2002):
  888. - ROM BIOS
  889.   - Boot from CDROM!  Christophe Bothamy added partial El Torito support in
  890.     rombios.c, which allows Bochs to boot cdroms.  Booting from win2k or winXP
  891.     cdrom is not supported yet.  The default BIOS includes El Torito functions.
  892.     the boot line must say "cdrom".
  893.     Example:
  894.       boot: cdrom
  895.   - implementation of int13 diskette function 5 (format track) (Volker)
  896.   - initialisation of PIC and DMA-2 added to POST code (Volker)
  897. - configure script (Bryce Denney)
  898.   - the configure script now detects your platform and provides a default
  899.     GUI and the required compiler flags.  All supported platforms should
  900.     compile with simply "configure" and "make".
  901.   - default guis by platform: 
  902.      - win32/windows/cygwin: win32 gui
  903.      - MacOS X: carbon gui
  904.      - MacOS 9 or earlier: macos gui
  905.      - BeOS: beos gui
  906.      - AmigaOS: amigaos gui
  907.      - all other platforms: X windows gui
  908.   - compile arguments supplied by configure script
  909.     - win32: too many to list here; see documentation
  910.     - cygwin: -mno-cygwin -DWIN32
  911.     - MacOS X: -fpascal-strings -fno-common -arch ppc -Wno-four-char-constants
  912.                -Wno-unknown-pragmas -Dmacintosh
  913.   - the --with-GUINAME configure option is only needed if you want to override
  914.     the default GUI.  This is the only way to use the Term, RFB, and SDL
  915.     GUIs.
  916. - VGA
  917.   - added VESA BIOS Extensions code by Jeroen Janssen (banked mode only, LFB
  918.     support in patches)
  919.   - vga memory read/write functions in text mode fixed
  920.   - implementation of CGA mode 320*200*4 (patch from Sebastien Bechet)
  921. - VGA BIOS
  922.   - updated Christophe Bothamy's LGPL VGA BIOS to version 0.3a.  This consists
  923.     of a bug fix for function ah=13 and VBE support by Jeroen Janssen.
  924. - networking
  925.   - chipmem read/write limit fixed (Mike Lerwill)
  926.   - writing a byte in 16-bit mode now possible (Mike Lerwill)
  927.   - new ethertap interface for Linux, which allows Bochs to talk to 
  928.     the local machine and the internet (Bryce Denney)
  929.   - NE2000 is now enabled by default on Win32, Cygwin, and Linux compiles
  930.     in the .conf.* scripts and release binaries.
  931.   - fix check for auto transmit disable, which was checking the wrong bit
  932.     (Peter Tattam)
  933.   - Win32 only
  934.     - niclist.exe has been revised to work on more Windows versions, and it
  935.       suggests a usable ne2k line (Dean Payne)
  936.     - fix timeout setting so that ne2000 does not slow down the whole
  937.       simulation (Don Becker)
  938.     - bug fix: be able to handle multiple packets that arrive at once
  939.       (Mike Lerwill)
  940. - GUI changes
  941.   - cdrom button: click this to notify Bochs when you changed the CDROM (Volker)
  942.   - snapshot button: saves the text on the Bochs screen into a file called
  943.     snapshot.txt (Volker)
  944.   - copy button: on Win32 and X windows, copy the text on the Bochs screen
  945.     to the clipboard (Volker)
  946.   - paste button: on Win32 and X windows, paste the characters on the 
  947.     clipboard into the Bochs window.  This requires keyboard_mapping to
  948.     be enabled. (Bryce Denney)
  949.   - improved text mode cursor for Win32, X11, and SDL (Volker)
  950.   - new SDL interface (Dave Poirier, debugging by Christophe, Volker, Bryce)
  951.     SDL is a graphics library that has works on many platforms.  This interface
  952.     is experimental, and is missing a few features of the standard Bochs
  953.     interfaces: extended keys (arrows, keypad).
  954.   - MacOS X: add MacOS X carbonized event handlers by Jeremy Parsons
  955.   - X windows: when not enough colors can be allocated, force use of 
  956.     private colormap (Bryce Denney)
  957.   - bug #490570 fixed: OUTB set and command 0xaa encountered (Dave Poirier)
  958. - keyboard
  959.   - completed keyboard emulation with the implementation of the three scancodes
  960.     sets (mf1, mf2, mf3) with or without translation. This is based on Ludovic 
  961.     Lange's plex86 keyboard patch. (Christophe Bothamy)
  962.   - added a "keyboard_type" option, that defines the answer to an "identify 
  963.     keybord" request to the keyboard controller. The available values are
  964.     "xt","at","mf".  (Christophe Bothamy)
  965.   - added an optional keyboard_mapping option that enables to use your
  966.     country specific keyboard with Bochs.  If enabled, the keymap file must be 
  967.     specified in bochsrc.  The available keymaps are US, German, Spanish and
  968.     French for PCs running X11.  Contributions are welcomed.  (Christophe
  969.     Bothamy)
  970.   - added Windows(tm) key definitions (Volker Ruppert)
  971.   - added paste button, which causes the emulated keyboard to type characters
  972.     from the system clipboard.  This only works when keyboard_mapping is
  973.     enabled. (Bryce Denney)
  974. - cdrom
  975.   - bug fix: win32 could not read a cdrom image file
  976.   - eject cd support for linux (patch from Petr Stehlik)
  977.   - BeOS fixes
  978.   - changing cdrom media is possible now with CDROM button
  979. - sound blaster(tm) emulation (Volker)
  980.   - you can use --enable-sb16=freebsd now
  981.   - 16-bit DMA controller added
  982.   - 16-bit mode of the SB16 implemented (output to file works)
  983. - floppy drive (Volker Ruppert)
  984.   - implementation of the floppy command 'format track'
  985.   - implementation of read / write operations with MT=0
  986.   - behaviour of a few floppy commands fixed
  987.   - floppy reset behaviour fixed
  988.   - lots of other fixes
  989. - fixed bug [ #468340 ] pic:slave: OCW3 not implemented.  Now the slave PIC
  990.   supports all the modes that the master PIC does, and nobody will see this
  991.   message again.
  992. - serial port (by Volker Ruppert unless noted)
  993.   - improved IRQ handling
  994.   - now Windows 95 serial driver works correctly
  995.   - fixed the return value of the MCR (loopback bit)
  996.   - interrupt reasons LSR change and MSR change implemented
  997.   - the number of data bits is considered when sending data
  998.   - all serial port changes are tested in loopback mode only
  999.   - serial port emulation fixed for FreeBSD and OpenBSD (Stu Grossman)
  1000.   - fix receiver poll frequency so that it doesn't slow emulation (Stu Grossman)
  1001. - Bochs debugger
  1002.   - when tracing, print the instruction just before it is executed, instead
  1003.     of just after (Greg Alexander)
  1004.   - after a triple-fault panic, you can now return to the debugger
  1005. - symmetric multiprocessor (SMP) simulation
  1006.   - no more panic if you read the EOI register
  1007.   - fixed default destination format in local APIC
  1008.   - fix SMP instruction tracing in bochs debugger
  1009.   - fix deadlock when debugger enabled and all processors HLT
  1010.   - MSR support added by Zwane Mwaikambo
  1011. - simulation of interrupts is more accurate (Volker)
  1012.   - implemented edge triggered interrupt mode
  1013.   - added functions raise_irq() and lower_irq()
  1014. - programmable interrupt timer (Greg Alexander)
  1015.   - fixed the PIT gate and improved the PIT printing options
  1016.   - experimental real-time PIT
  1017. - parallel port improvements (Volker Ruppert)
  1018. - bug fix: hard disk errors caused by overflowing imul in the BIOS code.  
  1019.   Sebastian Bechet and Peter Tattam tracked it down and fixed it.
  1020. - fix some memory leaks (patch from Darko Tominac)
  1021. - Double-Word IO is supported for ATA devices
  1022. - fix bash-specific syntax in install-x11-fonts script
  1023. - print stack_return_from_v86 error only the first 100 times
  1024.  
  1025. -------------------------------------------------------------------------
  1026. Changes in 1.3 (December 10, 2001):
  1027. - networking works on Windows and Linux platforms
  1028. - emulated cdrom can now read from ISO image files, on any platform.
  1029. - new PIT model by Greg Alexander which is much more complete than the
  1030.   old one.  The new PIT is used by default, but you can switch back to 
  1031.   the old one if you configure with --disable-new-pit.
  1032.   (PIT = 8254 programmable interrupt timer)
  1033. - new configuration menus by Bryce Denney, which allow you to change any
  1034.   bochsrc option using text menus, then save the configuration into
  1035.   a new bochsrc file for later use.  You can disable the new code using
  1036.   configure --disable-control-panel.  Also you can use the command
  1037.   line arguments -nocp or -nocontrolpanel.  Also, there is a new
  1038.   "Config" button on the GUI that allows limited changes to the 
  1039.   configuration at runtime, such as changing the floppy disk.
  1040. - add docbook documentation directory in the sources under doc/docbook.
  1041.   The transition from HTML to docbook documentation is still in progress.
  1042. - Add new log action "ask", as shown in these example bochsrc lines:
  1043.     panic: action=ask
  1044.     error: action=ask
  1045.   When an event occurs which is set to "ask", you get a beep and message
  1046.   on the text terminal that asks what you want to do.  Choices are: continue,
  1047.   continue and disable future messages from this device, quit immediately,
  1048.   or segfault (where abort() function is available).  If compiled with
  1049.   --enable-debugger, you can also choose to enter the debugger.
  1050. - Parallel port emulation cleaned up by Volker Ruppert.  See .bochsrc for
  1051.   syntax of new parport1 line in bochsrc.
  1052. - PCI support improved by Volker Ruppert, including BIOS changes.  Still
  1053.   not complete.
  1054. - floppy controller returns a proper error response if you try to write
  1055.   a read-only disk image.  For systems such as DOS that actually use the BIOS
  1056.   services, it was also necessary to add code in int13_diskette_function to
  1057.   recognize a write-protected error and return the correct error status code
  1058.   (AH=3, Carry Set).
  1059. - the ROM BIOS now prints panic messages to the console.  Thanks to Cliff
  1060.   Hones for his console display code.
  1061. - the ROM BIOS detects nonbootable disks (Barry Allard), and prints a message
  1062.   on the console.  Barry Allard's patch who helped with checking the boot
  1063.   signature.
  1064. - LBA support added for hard disks.  (Not tested very much.)
  1065. - add dependencies to makefiles
  1066. - logging code moved into a separate file, logio.cc
  1067. - new option --enable-slowdown-timer, by Greg Alexander, which kicks in if
  1068.   Bochs simulation time starts to run faster than real time.  This helps to
  1069.   keep the Bochs clock in sync with the real clock when the CPU is mostly
  1070.   idle.
  1071. - new option --enable-iodebug, by Dave Poirier, which creates an I/O
  1072.   interface to the debugger.  This lets you write software to be emulated
  1073.   in Bochs which can turn on instruction, register, or memory tracing
  1074.   using I/O accesses.
  1075. - improved detection of readline in configure script
  1076. - configure substitutes the version number into many files, instead of
  1077.   using sed in the makefile.  There are still a few uses of sed remaining.
  1078. - you can now use environment variables in bochsrc values.  For example,
  1079.   diskd: file="$BOCHS_IMG/diskd.img", cyl=615, heads=6, spt=17
  1080. - configure with --prefix=PATH works now
  1081. - running configure from a different directory works now, thanks to 
  1082.   a patch from Edouard G. Parmelan
  1083. - fix [ #433759 ] virtual address checks can overflow.
  1084.   > Bochs has been crashing in some cases when you try to access data which
  1085.   > overlaps the segment limit, when the segment limit is near the 32-bit
  1086.   > boundary.  The example that came up a few times is reading/writing 4 bytes
  1087.   > starting at 0xffffffff when the segment limit was 0xffffffff.  The
  1088.   > condition used to compare offset+length-1 with the limit, but
  1089.   > offset+length-1 was overflowing so the comparison went wrong.
  1090. - cmpxchg8b patch from Michael Hohmuth <hohmuth@innocent.com>
  1091. - apply patch from Thomas Fitzsimmons <fitzsim@cygnus.com> to fix compile
  1092.   problems when BX_SUPPORT_PAGING and BX_USE_TLB are turned off
  1093. - fix bug introduced in 1.2.1 which caused spurious exceptions.
  1094.   See patch #439314, Exception 1 (debug) on HALT, from
  1095.   thomas.petazzoni@meridon.com.
  1096. - add panic in ctrl_xfer32.cc where the IRET32 implementation is broken.
  1097.   This only happens if you are NOT in vm8086 mode or protected mode.
  1098.   The intent is to warn people when they are getting bad emulation, and
  1099.   encourage people to report how they got to that point.
  1100. - apply patch from Santiago Bazerque.  See this bug report:
  1101.   [ #463018 ] retf not removing parameters sometimes
  1102. - fix bug [ #461730 ] IRETD causes problems if NT-flag is set
  1103.   reported by Peter Lammich.
  1104. - apply patch [ #455014 ] CR0 bug in 80486, described as:
  1105.   > In the register CR0, when the bit PM is enabled, the bit 4 is 0
  1106.   > when should be 1.
  1107. - apply patch from Mike Rieker <mrieker@o3one.org> associated with this bug
  1108.   report: [ #480422 ] gdt 'accessed' bit
  1109. - in task_switch when it tried to ensure that the old TSS was paged in,
  1110.   it actually used the new TSS address, fixed.
  1111. - updated the instrumentation code, and added a working example.  To try
  1112.   it, configure --enable-instrumentation=instrument/example1.  Then when
  1113.   you run bochs, you will get one line for each instruction PC and for
  1114.   each I/O access in a new file called bxevent.txt.
  1115. - set a bit in the CMOS that says the processor has an FPU.  This is
  1116.   from patch [ #455006 ] Device byte is not initialized aptly.
  1117.   Author did not leave their name.
  1118. - add logging code to the "null ethernet" which does not require host OS
  1119.   support.  All this does is print the outgoing packets from the guest OS.
  1120. - cleanup of log functions (Todd Fries)
  1121. - add BX_ERROR for every command in ATAPI-6 that bochs does not support.
  1122.   I still need to do add some commands from older specs that are obsolete
  1123.   (and not listed) in ATAPI-6.  Commands that aren't in the spec will still
  1124.   panic.
  1125. - only put 0xf into the 2nd hard disk field when the cdrom is not present.
  1126.   This is a patch from Volker Ruppert <Volker.Ruppert@t-online.de>, who
  1127.   comments: "The fdisk command reports an unusable second harddisk if the cdrom
  1128.   is enabled. This patch helps, but I don't know if it is the right way."
  1129. - make hard disk code return error codes when data is not available instead
  1130.   of just panicing.  In particular, if the logical sector is out of bounds
  1131.   or the disk image cannot be read/written at the desired offset, we now
  1132.   abort the ATA command and return an error code.  Many of the old BX_PANIC
  1133.   messages are turned to BX_ERROR, so they will still appear in the
  1134.   log, but now the device model will try to communicate this fact to
  1135.   the OS instead of simply giving up.
  1136. - don't blindly reject odd length atapi commands.  There are cases when
  1137.   it's really ok according to ATA-4.
  1138. - for big endian machines, reversed the bit fields in interrupt_reason.
  1139.   This was pointed out by Nicholai Benalal.
  1140. - extended keyboard improvements by Dave Poirier
  1141. - major mouse patch from Dave Spring, that implements several missing 
  1142.   mouse modes.
  1143. - commit keyboard patch from David Haslam <dch@sirius.clara.co.uk>
  1144.   posted to mailing list, that addresses the problem of each key press
  1145.   printing ^@.  See cvs log for details.
  1146. - mouse performance fixes by Greg Alexander and Robb Main
  1147. - NE2000 fixes by Frode Vatvedt Fjeld, ecelca@yahoo.com, Greg Alexander,
  1148.   and angelos@openbsd.org.
  1149. - fix bug [ #468340 ] pic:slave: OCW3 not implemented.  Some event handling
  1150.   code appeared in the master pic but not the slave pic.
  1151. - fix compile problems in SB16 code, related to fpos_t being treated as 
  1152.   an integer.
  1153. - patch from Volker Ruppert <Volker.Ruppert@t-online.de> to fix
  1154.   midi output file so that winamp can play it.
  1155. - some cleanup of serial code by Todd Fries and Volker Ruppert, but it
  1156.   doesn't work yet.
  1157.  
  1158. X Windows specific:
  1159. - commit patch from David Haslam <dch@sirius.clara.co.uk>
  1160.   [ #455763 ] Cursor trail with DOS Edit/Minix vi
  1161. - error for missing fonts now points to the documentation
  1162. - new option --enable-idle-hack, by Roland Mainz, which makes Bochs more
  1163.   friendly toward other processes when its CPU is idle.  Presently, 
  1164.   this option is specific to X windows.
  1165.  
  1166. Win32 specific:
  1167. - now Windows 95/98/ME can read the physical cdrom (Don Becker)
  1168. - The default configuration for Win32 VC++, given in .conf.win32-vcpp,
  1169.   now enables the NE2000 and renames all .cc files to .cpp.  This keeps VC++
  1170.   happy but may make it hard to use CVS.
  1171. - The default configuration for Cygwin, given in .conf.win32-cygwin, now
  1172.   enables cdrom and SB16.
  1173. - See "new docs" on the web site for compile instructions for VC++ and Cygwin.
  1174. - The sources include a VC++ workspace, in addition to the old "nmake"
  1175.   makefile.
  1176. - ethernet support (emulated NE2000 card), coded by Don Becker.  This
  1177.   implementation requires a library called WinPCap, which you can 
  1178.   download from http://netgroup-serv.polito.it/winpcap.
  1179. - new utility called niclist.exe which lists the ID number of all your network
  1180.   cards (well probably you just have one).  The ID be used when setting up your
  1181.   .bochsrc.
  1182. - patch [ #466403 ] make text colors more accurate.  The author did not leave
  1183.   his/her name.
  1184. - fix GUI bug [ #452159 ] win32: mouse stuck if bochs win partly off screen
  1185.   Now we center the mouse periodically, whether or not the mouse has
  1186.   wandered outside of the window or not.
  1187. - event handler recognizes the extended keycode flag
  1188. - fixes for raw floppy and floppy disk images (Don Becker)
  1189.  
  1190. Linux specific:
  1191. - Ethernet (emulated NE2000 card) now works in Linux!  Contributed by
  1192.   splite@purdue.edu.  This has been tested using host OS kernel 2.2.14, and
  1193.   works with telnet, ftp, irc, lynx, etc.  Because it is a packet filter
  1194.   solution, you aren't able to talk to the host machine, only to other 
  1195.   machines on the network.  
  1196. - The default configuration for Linux, given in .conf.linux, now enables
  1197.   the NE2000 model.
  1198. - RPM build process configures with --prefix=/usr so that everything is
  1199.   installed in /usr/bochs instead of /usr/local/bochs.
  1200. - DLX Linux disk image is now installed so that only root can write it, to
  1201.   avoid security problems.  When you run the bochs-dlx script, it creates a
  1202.   local copy in your home directory and then runs it.
  1203. - code that determines the capacity of a cdrom now works for both ATAPI
  1204.   and SCSI drives (splite@purdue.edu)
  1205. - applied patch from bochs@sigint.cs.purdue.edu.  The comments are:
  1206.   > The Linux 2.4.5 CD-ROM driver sends a READ_DISC_INFO command which caused
  1207.   > an "unrecognized ATAPI command" panic.  Looks like READ_DISC_INFO is only
  1208.   > recognized by CD-R and CD-RW drives, so I ignore it for now.
  1209.  
  1210. Amiga MorphOS specific:
  1211. - Bochs now compiles and works on Amiga MorphOS.  Configure with
  1212.   --with-amigaos.  For AmigaOS only, see .bochsrc for use of fullscreeen and
  1213.   screenmode options.  The Amiga MorphsOS is written and maintained by
  1214.   Nicholai Benalal <nicholai@chello.se>.
  1215. - raw cdrom supported if you configure with --enable-cdrom
  1216.  
  1217. BeOS specific:
  1218. - Bochs compiles and works on BeOS.  Configure with --with-beos.
  1219.   Bernd Thorsten Korz <bernd.korz@insidebeos.de> maintains the BeOS port.
  1220. - raw cdrom supported if you configure with --enable-cdrom
  1221.  
  1222. MacOS X specific:
  1223. - Bochs now compiles and works on MacOS X.  Configure with --with-carbon.
  1224.   Emmanuel Mailliard <e.rsz@libertysurf.fr> ported the Macintosh code to the
  1225.   Carbon API.
  1226. - The MacOS X application is built using (gasp) mkdir, copy, and rez.
  1227.   Surely this is not the right way, but it works.
  1228. - raw cdrom supported if you configure with --enable-cdrom
  1229.  
  1230. RFB mode:
  1231. - apply patch.rfb-mouse by MURANAKA Masaki (monaka@users.sf.net)
  1232.   see this source forge bug [ #457968 ] Strange mouse motion on RFB
  1233. - add a retry loop in RFB code, so that if port 5900 is not available
  1234.   it can try 5901, etc.
  1235.  
  1236. Bochs Debugger:
  1237. - do a vga update whenever you print a debugger prompt.
  1238. - added debugger command "info fpu" that prints the FPU registers.  If you
  1239.   do "info all" you get cpu and fpu registers.
  1240. - added debugger command "info ne2k" which prints all the registers
  1241.   of the NE2000 model
  1242. - add ability to do register tracing and flag tracing (Dave Poirier).
  1243.   Try the trace-reg-on and trace-reg-off commands.
  1244. - instruction trace now includes time ticks
  1245. - fixed problems in which bochs compiled with debugger measured time 
  1246.   differently from bochs compiled without debugger.  Also when instruction
  1247.   trace was enabled, breakpoints and control-C did not work.  Also,
  1248.   breakpoints at the beginning of an interrupt handler did not work.
  1249.  
  1250. -------------------------------------------------------------------------
  1251. Changes in 1.2.1 (June 12, 2001):
  1252. - more work on makefile for building RPMs
  1253. - [ #432382 ] build debian packages patch
  1254.   add build/debian directory from Rob Lemley <rjlemley@calypsoblue.org>
  1255.   which allows us to make Debian packages!
  1256. - optimize for speed when simulating one processor.  Now 1-processor
  1257.   performance should be equivalent to 1.1.2.
  1258. - [ #425640 ] sb16 assumes fpos_t is long int
  1259.   This fixes compiles of iodev/sb16.cc on linux systems with newer libraries
  1260.   in which fpos_t is not an integer.
  1261. - [ #432488 ] SMP:assert "n_logfn < MAX_LOGFNS" fails
  1262.   increase MAX_LOGFNS since we ran out of them on an SMP simulation with
  1263.   4 processors
  1264. - changes to compile clean on cygwin:
  1265.   - don't use the WIN32 snprintf define for cygwin
  1266.   - add ssize_t definition for cygwin
  1267.   - only compile "struct timeval tval" if select is available
  1268.     on that platform.
  1269. - [ #432491 ] SMP: CPUID says no APIC feature
  1270.   clean up inconsistent use of BX_SUPPORT_APIC and BX_APIC_SUPPORT, which
  1271.   caused the CPUID to report no APIC was present
  1272. - [ #431025 ] --enable-external-device-models broken
  1273.   removed configure options for external-device-models and 
  1274.   external-cpu-memory.  These don't work and aren't going to be fixed.
  1275. - [ #429448 ] configure: -lreadline when not there
  1276.   Now configure allows you to choose not to use readline, even if it's found
  1277.   on your system.
  1278. - [ #428915 ] apply extended keyboard patch
  1279.   extended keyboard patch by Dave Poirier <eks@void-core.2y.net>
  1280. - [ #428626 ] if no X11 found, configure&make fails
  1281.   Now configure halts if X windows is selected but no X libraries are found.
  1282. - updated rombios to version 1.13.  This fixes several problems:
  1283.   - [ #430472 ] DOS HIMEM "A20 line" error
  1284.     This problem was apparantly caused when Bryce added a function that prints
  1285.     the BIOS version, and he called it too early in the boot process.  Now the
  1286.     same function is called later, and it doesn't break the A20.
  1287.   - [ #431010 ] SMP structure overwritten in v1.2
  1288.     SMP structures were getting overwritten by BCC-generated data, 
  1289.     preventing SMP operating systems from detecting that other processors
  1290.     were available.
  1291.   - [ #431016 ] bios: SMP struct has wrong entry count
  1292.     SMP structure had the wrong entry counts
  1293. - very minor doc updates (typos, replace broken link to mtools info)
  1294. - quit when the user clicks the power button, even if they have disabled
  1295.   panics.
  1296. - win32 now defaults to having mouse capture mode turned off.  For new users,
  1297.   it would be distressing for their mouse cursor to disappear until they
  1298.   pressed F12.
  1299. - [ #428222 ] vga font not installed
  1300.   added script called "install-x11-fonts" which should help people install
  1301.   the VGA font on X windows systems, if it isn't already there.
  1302.  
  1303. Changes in 1.2 (June 3, 2001):
  1304. - [ #427259 ] rombios HALT calls don't print
  1305.   Fixed bios/rombios.c HALT macro so that it writes the line number of the
  1306.   panic to the PANIC_PORT (port 0x400) and then does NOT do a halt 
  1307.   instruction.  Also changed iodev/unmapped.cc so that the line number written
  1308.   to PANIC_PORT is displayed as a BX_PANIC message.  Because the HALT
  1309.   macro now triggers the normal panic behavior, it can be controlled by
  1310.   the bochsrc.
  1311. - [ #429016 ] crash if no hard drive
  1312.   rombios used to call HALT macro if no hard drive was found. Now it only
  1313.   calls HALT if a hard drive has an illegal geometry.
  1314. - [ #425388 ] include source for simple disk img tool
  1315.   [ #428478 ] mkimg tool creates image 1 byte too big
  1316.   Added bximage tool, which makes empty floppy and hard disk images.
  1317.   It is now included in the top level Makefile, so it will get built
  1318.   by default on all platforms.
  1319. - [ #426036 ] eth_fbsd.cc compile problem on solaris26
  1320.   added configure test so that "configure --enable-ne2000" only
  1321.   includes the Berkeley Packet Filter code (eth_fbsd) if the header
  1322.   file <net/bpf.h> can be found.  If you don't have BPF the ne2000
  1323.   will not actually move packets, but at least it will compile clean now.
  1324. - [ #428214 ] 1.2.pre1 need documentation for binaries
  1325.   Write windows and linux specific documentation to be installed in
  1326.   binary releases.
  1327. - [ #429258 ] disable RESET for version 1.2
  1328.   Since soft reset was not completely working, I reverted the reset patch.
  1329.   Now it does panics on reset instead of trying to reboot, as the old
  1330.   bochs versions did.
  1331. - [ #428222 ] Should the linux RPM install vga font?
  1332.   now font/vga.pcf will be installed in the RPM package
  1333. - [ #429020 ] stop renaming the BIOS!!!
  1334.   new BIOS changes are now in BIOS-bochs-latest, instead of a BIOS 
  1335.   whose name changes every time we change anything!  To help distinguish
  1336.   different BIOS versions, the BIOS now prints its RCS Id into the
  1337.   log file.
  1338. - [ #428625 ] compile problem if SHOW_IPS is on
  1339.   removed extra paren that broke SHOW_IPS
  1340. - [ #428219 ] PCI doesn't compile with SMF=1
  1341. - [ #429375 ] pthreads detection broken
  1342. - [ #429073 ] configure: if no X11, makes bad config
  1343. - [ #429229 ] install current .bochsrc in binary rels
  1344. - install Tim's man pages on linux RPM
  1345. - BIOS prints messages in log in case of boot failure
  1346. - rewrote instructions for compiling in win32 (win32.txt)
  1347. - fixed link in HTML changelog.html to point to the real sources on SF.
  1348. - added missing LOG_THIS definition to gui/nogui.cc and gui/rfb.cc
  1349. - added additional check for null pointer in debugger exit routine
  1350. - added diskd to .bochsrc
  1351.  
  1352. Changes in version 1.2-pre1 (May 25, 2001):
  1353. - major cleanup of .bochsrc
  1354. - major cleanup of stderr output: prints bochs version information when
  1355.   starting, and at the end it tries to print the message that caused 
  1356.   bochs to quit.
  1357. - two hard disk support (diskd).  At present, you cannot have two 
  1358.   hard drives and a cdrom at the same time, because there is only
  1359.   one IDE controller with two channels.
  1360. - split hard disk support allows different partitions to be stored in
  1361.   different image files
  1362. - two new GUI choices: term mode and RFB mode.  Term is a text-only
  1363.   interface, and RFB creates a server that can be accessed using
  1364.   the AT&T VNC viewer.
  1365. - now Bochs can simulate an SMP machine, if you configure with
  1366.   --enable-processors=N.  Configuring more than one processor has
  1367.   a major performance impact, so the default is 1 processor.
  1368.   See SMP documentation for more details.
  1369. - to make SMP work, bx_mem and bx_cpu have been replaced with
  1370.   bx_mem_array[] and bx_cpu_array[].  The cpus are referenced through
  1371.   the BX_CPU(n) macro and memories through the BX_MEM(n).  Normal
  1372.   mode has one cpu and one memory, SMP mode has multiple cpu's and 
  1373.   one memory, cosimulation mode has multiple cpus and multiple memories.
  1374. - use --enable-cpu-level=6 to make Bochs claim to be a Pentium Pro.
  1375.   The only feature that requires CPU level 6 is apic support.
  1376. - new logging system by Todd Fries, which has 4 levels of event
  1377.   severity (panic, error, info, debug).  There are new .bochsrc
  1378.   options that control what action to take when a 
  1379.   panic/error/info/debug event occurs.
  1380. - now searches for .bochsrc, bochsrc, bochsrc.txt, and (on unix only)
  1381.   $HOME/.bochsrc.
  1382. - use GNU readline library if --enable-debugger is on, as long as readline
  1383.   can be found on the machine
  1384. - configure checks for existence strtoull and strtouq. if neither exists, 
  1385.   Bochs uses its own implementation
  1386. - applied patches from Cliff Hones <cliff@aonix.co.uk> to fix up the
  1387.   rombios.  This includes many improvements, which you can list by
  1388.   doing "cvs log -r 1.6 bios/rombios.c" or looking at cvsweb.
  1389. - added suggested geometries of larger disks to the documentation
  1390. - this is the first release to have official binary packages for win32
  1391.   and Linux.  There is a new "make rpm" in the top-level Makefile which
  1392.   will create an RPM of the current bochs directory.  To use this,
  1393.   become root and type "configure; make rpm".
  1394. - applied some FreeBSD patches from Maxim Sobolev (cdrom and serial).
  1395.  
  1396. Changes in version 1.1.2 (bugfix3, May 16, 2001):
  1397. - updated Elpin VGA BIOS to version 2.40, and changed pointer in .bochsrc
  1398. - fixed .conf.x86 script so that it uses c++ instead of egcs for C++ files
  1399. - now Makefile targets that recurse into subdirectories use double colons,
  1400.   so that it will always recurse into subdirectories.  Now a single make
  1401.   command should notice a modified source file in a subdir.
  1402. - fixed bug in bx_panic.  If BX_PANIC_IS_FATAL==0 and a (non-fatal) panic 
  1403.   occurs, it used to call bx_atexit() and then return.  It should never
  1404.   call bx_atexit, which starts to shut down the simulator, unless it's
  1405.   really going to quit!
  1406. - support 2.88 MB floppy disks
  1407. - since dataseghack is checked in as non-executable, invoke it with 
  1408.   "csh dataseghack"
  1409. - double fault patch from Thomas Petazzoni <thomas.petazzoni@ifrance.com>,
  1410.   sourceforge patch #423726.
  1411. - removed -fno-builtin from fpu makefiles
  1412. - redefine u_char, u_short, etc. in order to not conflict with system
  1413.   definitions of these same types.
  1414. - in cdrom.cc, remove the extern "C" { } structure around some of the
  1415.   header files.  This is no longer necessary.
  1416. - do not panic on hard disk command 0x1f2 (read sector count)
  1417. - in keyboard.cc:
  1418.   - apply Todd Fries' reset patch
  1419.   - recognize most of the "Grey" insert/delete/home/end/etc. keys the
  1420.     same as keypad keys.
  1421.   - removed panic on "kbd_ctrl_to_kbd(): got value of 0x??"
  1422.   - implement mouse command 0xf6 (set defaults)
  1423. - apply Suboner@aol.com's Xwindows timing patch from
  1424.   http://sourceforge.net/tracker/index.php?func=detail&aid=418730&group_id=12580&atid=312580
  1425. - remove all patches from patches subdir which have already been applied.
  1426.   The remaining ones are under consideration but not applied.
  1427.  
  1428. Changes in version 1.1.1 (bugfix2, April 9, 2001):
  1429. - in soundwin.cc, arg 3 should be typecast to LPWAVEFORMATEX
  1430. - in fpu_entry.c, Bryce mistyped his own initials!
  1431. - in configure.in and configure, define good defaults for VC++
  1432.    #define BX_64BIT_CONSTANTS_USE_LL 0
  1433.    #define inline __inline
  1434.    #define BX_NO_EMPTY_STRUCTS 1
  1435.    #define BX_NO_ATTRIBUTES 1
  1436.    #define BX_HAVE_HASH_MAP 0
  1437. - in config.h.in, fixed typo in #error message
  1438.  
  1439.  
  1440. Changes in version 1.1 (bugfix1, April 6, 2001):
  1441.  
  1442. (FIXED, patch #414360: update copyrights)
  1443. update headers.  Change copyright to 2001, replace config.h.in header with
  1444. the standard mandrake header that every other file uses.
  1445.  
  1446. (FIXED, patch #414356: inlines)
  1447. make macro to replace inline and static/extern keywords.  Then make 
  1448. define the macro appropriately based on configure.
  1449.  
  1450. (FIXED: patch #414234: macos-no-strdup)
  1451. --with-macos should force HAVE_STRDUP=0.
  1452.  
  1453. (FIXED, patch #403027: Fix mouse bugs in Linux and BSD)
  1454. Linux and BSD (maybe others) cause panic in mouse code.
  1455.  
  1456. (FIXED, patch #413851: const64bit patch)
  1457. VC++ does not allow "LL" after 64-bit constant.
  1458.  
  1459. (FIXED, patch #413859: fabs symbol conflict)
  1460. fpu code contains fabs, which conflicts with math library fabs.
  1461.  
  1462. (FIXED, patch #403004: Implement aborts on a few SET FEATURE commands...)
  1463. Implement aborts on a few SET FEATURE commands for ATA.
  1464.  
  1465. (FIXED, patch #402991: Update to iodev/vga.cc to add 3c3h read support)
  1466. Implement VGA enable register, at 0x3c3.
  1467.  
  1468. (FIXED, patch #403027: Fix mouse bugs in Linux and BSD)
  1469. Mouse panic in linux/BSD: 
  1470. KBD: io write 0x64: command = 0xD3(write mouse outb)
  1471.  
  1472. (FIXED, patch #414229: panic-is-fatal)
  1473. Allow user to decide if panic is fatal, or just a warning
  1474.  
  1475. (FIXED, patch #414230: sun-cdrom)
  1476. Support Sun CDROM
  1477.  
  1478. (FIXED, patch #413574: portable1)
  1479. there are cases where a pointer is cast to a 32-bit int,
  1480. then later cast to a pointer and dereferenced, which crashes any 64-bit
  1481. machine.
  1482.  
  1483. (FIXED, patch #413574: portable1)
  1484. some machines have no snprintf or strtoull.  include a replacement function
  1485. when needed.
  1486.  
  1487. (FIXED, patch #413574: portable1)
  1488. Some compilers don't allow "typedef struct { } foo;"
  1489.  
  1490. (FIXED, patch #413574: portable1)
  1491. Some people don't have hash_map.h, used in dbg_main.cc.  Disable this code
  1492. if hash_map.h not found.
  1493.  
  1494. (FIXED, patch #413574: portable1)
  1495. Some compilers can't handle labels at the end of a block, as in
  1496.    void main () { /*code*/ label: }  
  1497.  
  1498. (FIXED, patch #413574: portable1)
  1499. Most compilers can't handle __attribute__.  Use macro to define it away.
  1500.  
  1501. (FIXED, patch #413574: portable1)
  1502. if --enable-debugger, turn on --enable-disasm too.
  1503.  
  1504. (FIXED, patch #413574: portable1)
  1505. ome compilers can't handle any chars after an #endif
  1506.  
  1507. (FIXED, patch #413574: portable1)
  1508. wrong type arg1 of bx_dbg_watch and bx_dbg_unwatch.  The code in
  1509. lexer.l was calling it with integers (not booleans)
  1510.  
  1511. (FIXED, patch #413574: portable1)
  1512. in fpu code, "setcc" macro was implemented with braces inside parens,
  1513. which some compilers don't understand.
  1514.  
  1515. (FIXED, patch #413574: portable1)
  1516. in fpu_entry.c, FPU_load_int32 was consistently called with arg1 of
  1517. type (s32 *), but should be (u32 *)
  1518.  
  1519. (FIXED, patch #413574: portable1)
  1520. comment out sigcontext structure in fpu/stubs/asm/sigcontext.h because
  1521. it conflicted with sigcontext of other machines.  This struct was never
  1522. used by bochs anyway.
  1523.  
  1524. (FIXED, patch #414046: portable2)
  1525. move definition of missing library functions into osdep.h and osdep.cc,
  1526. include contents of macutils*.
  1527.  
  1528. (FIXED, patch #414061: win32-rawcd)
  1529. CDROM drive letter for WIN32 should not be hardcoded.
  1530.  
  1531. (FIXED, patch #414060: win32-rawfloppy)
  1532. Bypass fstat when opening WIN32 raw floppy disk.
  1533.  
  1534. (FIXED, patch #414226: pit-panic)
  1535. WinME install dies with panic:
  1536. bochs: panic, pit: outp(43h): comm Bh, mode 00, bcd 00 unhandled
  1537. I think I had a similar problem.  All three timers should support modes
  1538. 0, 2, and 3.  Other modes really aren't implemented.
  1539.  
  1540.